package cz.cuni.mff.ufal.volk.services;

import java.util.List;

import cz.cuni.mff.ufal.volk.Expression;

/**
 * A common service that processes {@link Expression} objects.
 * 
 * <p>The interface provides methods for retrieving the list of supported languages.</p>
 * 
 * @author Bartłomiej Etenkowski
 */
public interface LanguageItemProcessor {
  
  /**
   * Checks whether the given language is supported by this service.
   * 
   * @param  language the language to be checked
   * @return whether the given language is supported by the service
   * 
   * @throws NullPointerException if the language parameter is {@code null}
   */
  
  boolean languageSupported(String language);
  
  /**
   * Retrieves the list of the languages supported by this service.
   * 
   * @return the list of all supported languages
   */
  List<String> supportedLanguages();
  
}
